# Enum 值
uint8   Nav                                   = 1
uint8   Location                              = 2
uint8   Navigation                            = 3         # move base 模块（张峻峰）
uint8   Guard                                 = 4
uint8   Camera                                = 5
uint8   Split                                 = 6
uint8   Recharge                              = 7
uint8   Global                                = 8
uint8   Local                                 = 9
uint8   Mem                                   = 10
uint8   Energy                                = 11
uint8   Room                                  = 12
uint8   RTK                                   = 13
uint8   Charge                                = 14
uint8   Vins                                  = 15        # 预留（vins_estimator 袁洪跃）      
uint8   Hmi                                   = 16
uint8   Base                                  = 17
uint8   AppComms                              = 18  
uint8   Logic                                 = 19 

# nav 模块
int16   Nav_Idle                              = 0 
int16   Nav_Undocking                         = 1 
int16   Nav_ToMissionPoint                    = 3 
int16   Nav_Mowing                            = 5 
int16   Nav_ToEdgeingPoint                    = 7
int16   Nav_Edgeing                           = 9 
int16   Nav_ToDocking                         = 11 
int16   Nav_Docking                           = 13 
int16   Nav_ToSubmap                          = 15            #跨地图
int16   Nav_Maping                            = 100 

# 定位模块
int16   Location_RTK_RECOVER                   = -1            #RTK定位恢复，RTK从长时间无到有时会发几次
int16   Location_NORMAL                        = 0             #正常状态，系统处于该状态下周期性发布
int16   Location_NO_RTK                        = 1             #长时间没有RTK，系统处于该状态下会周期性发布
int16   Location_BIG_ERROR                     = 2             #长时间大误差，系统处于该状态下会周期性发布
int16   Location_INIT                          = 3             #初始化状态，系统处于该状态下周期性发布

# move_base 模块
int16   Navigation_free                        = 0             #空闲状态
int16   Navigation_ToMissionPointStart         = 1             #到割草点
int16   Navigation_MowingStart                 = 2             #弓字形割草（调节到预定刀盘高度，开刀盘）
int16   Navigation_ToEdgeingPointStart         = 3             #到割边点
int16   Navigation_EdgeingStart                = 4             #割边（调节到预定刀盘高度，开刀盘）
int16   Navigation_ToDockingStart              = 5             #到充电桩点
int16   Navigation_ThroughChannel              = 7             #过通道(刀盘升到最高）
int16   Navigation_AvoidObstacle               = 10            #避障
int16   Navigation_Planning                    = 11            #正在规划路径
int16   Navigation_CanNotPlanBreakTrap         = 12            #规划不出路径进入脱困（刀盘升到最高，关刀盘)
int16   Navigation_NotMoveBreakTrap            = 13            #困住不动进入脱困（刀盘升到最高，关刀盘)
int16   Navigation_OutMapBreakTrap             = 14            #机器人在地图之外脱困（刀盘升到最高，关刀盘)
int16   Navigation_RunOutLawn                  = 15            #在非草坪区域（刀盘升到最高，且关刀盘）

#防盗报警状态
int16   Guard_Normal                           = 0             #正常
int16   Guard_Warn                             = 1             #防盗报警

# 相机模块
int16   Camera_Normal                          = 1             #正常
int16   Camera_Nodata                          = 2             #没有图像  报故
int16   Camera_Lostdata                        = 3             #摄像头丢帧，需要立即报警，摄像头需要进行自恢复，如果恢复成功，状态切为正常，逻辑模块自动清除故障 @袁 2025-05-23

# 分割模块
int16   Split_Normal                           = 1             #正常
int16   Split_Lostframe                        = 2             #丢帧超过2秒

# 回充模块
int16   Recharge_Undocking                     = 1             #退桩中-正常(正常退桩中）
int16   Recharge_Undocksuccess                 = 2             #退桩完成（发了后，会进入8）
int16   Recharge_Undockfail                    = 3             #退桩失败-其他异常（有可能还会重试，3，4，5，12 并列关系）
int16   Recharge_Undock_No_Gps                 = 4             #退桩中-中途无GPS（至少发三次）
int16   Recharge_Undock_No_Tf                  = 5             #退桩中-无Tf（至少发三次）
int16   Recharge_Docking                       = 6             #对桩中-正常
int16   Recharge_Dockingfail                   = 7             #对桩失败-其他异常
int16   Recharge_Working                       = 8             #节点工作中(主线程会阻塞，启用单独线程，用于判断节点是否存活)
int16   Recharge_CloseDock                     = 9             #对桩起始点小于20cm
int16   Recharge_ObstacleAvoidanceFailed       = 10            #对桩避障失败
int16   Recharge_ElectrifyFailed               = 11            #对桩通电失败
int16   Recharge_Undock_No_Gps_Start           = 12            #退桩中-开始无GPS（至少发三次）

# global_map_node 节点
int16   Global_Status_Normal                   = 0             # 节点正常  
int16   Global_Status_Error                    = 1             # 节点异常 
int16   Global_Data_Status_Normal              = 2             # 数据正常发布
int16   Global_Data_Status_Updatting           = 3             # 数据正在更新状态
int16   Global_Data_Status_Error               = 4             # 数据更新异常

# local_map_mod 节点
int16   Local_Normal                           = 0             # 节点正常
int16   Local_Error                            = 1             # 节点异常


#Mem 状态
int16   Mem_Normal                             = 0             # 正常状态，该状态下不发布
int16   Mem_OverLoad                           = 1             # 超载状态，该状态出现立即发布，直到不再出现为止

#Energy 状态
int16   Energy_No                              = 0             # 正常状态，非节能状态
int16   Energy_In_Progress                     = 1             # 节能进入，某些节点正在关闭
int16   Energy_Yes                             = 2             # 节能状态，某些节点未运行
int16   Energy_Recovering                      = 3             # 节能恢复，某些节点未运行
